CREATE PROCEDURE [dbo].[asi_CreateIndividual]
@contactKey uniqueidentifier,
@id nvarchar(20),
@fullName nvarchar(110),
@lastFirst nvarchar(110),
@prefix nvarchar(25),
@firstName nvarchar(20),
@middleName nvarchar(20),
@lastName nvarchar(30),
@suffix nvarchar(10),
@designation nvarchar(20),
@informal nvarchar(20),
@gender nvarchar(1),
@noSolicitationFlag bit,
@statusCode nvarchar(5),
@birthdate datetime,
@companyContactKey uniqueidentifier,
@companyName nvarchar(80),
@companyTitle nvarchar(80),
@createdByUserKey uniqueidentifier
AS
BEGIN
SET NOCOUNT ON;
DECLARE @now datetime
DECLARE @entityKey uniqueidentifier
DECLARE @defaultOrganizationKey uniqueidentifier
DECLARE @accessKey uniqueidentifier
DECLARE @individualTypeKey uniqueidentifier
DECLARE @registryKey uniqueidentifier
SET @now = getdate()
SELECT @entityKey = SystemEntityKey FROM SystemEntity WHERE SystemKeyword = 'Organization'
SELECT @defaultOrganizationKey = OrganizationKey FROM OrganizationMain WHERE IsDefault = 1
SELECT @accessKey = ParameterValue FROM SystemConfig
WHERE ParameterName = 'Security.Token.EveryoneFullControlAccessKey'
and SystemEntityKey = @entityKey and OrganizationKey = @defaultOrganizationKey
SELECT @individualTypeKey = ContactTypeKey from ContactTypeRef where IsInstitute = 0
SELECT @registryKey = ComponentKey FROM ComponentRegistry
WHERE Name = 'Individual' and InterfaceName = 'BusinessController'
INSERT UniformRegistry (UniformKey, ComponentKey)
VALUES (@contactKey, @registryKey)
INSERT INTO [ContactMain]
([ContactKey], [ContactStatusCode], [FullName], [SortName], [IsInstitute], [NoSolicitationFlag],
[SyncContactID], [ID], [IsIDEditable], [CreatedByUserKey], [CreatedOn], [UpdatedByUserKey], [UpdatedOn], [PreferredAddressCategoryCode],
[IsSortNameOverridden], [AccessKey], [TextOnlyEmailFlag], [ContactTypeKey], [OptOutFlag])
VALUES (@contactKey, @statusCode, @fullName, @lastFirst, 0, @noSolicitationFlag, @id, @id, 0,
@createdByUserKey, @now, @createdByUserKey, @now, '1', 0, @accessKey, 0, @individualTypeKey, 0)
IF @prefix = '' SET @prefix = NULL
IF @prefix IS NOT NULL AND @prefix NOT IN (SELECT PrefixCode FROM PrefixRef)
INSERT INTO [PrefixRef] (PrefixCode, PrefixDesc, SyncPrefixCode, PrefixKey)
VALUES (@prefix, @prefix, @prefix, newid())
IF @suffix = '' SET @suffix = NULL
IF @suffix IS NOT NULL AND @suffix NOT IN (SELECT SuffixCode FROM SuffixRef)
INSERT INTO [SuffixRef] (SuffixCode, SuffixDesc, SyncSuffixCode, SuffixKey)
VALUES (@suffix, @suffix, @suffix, newid())
INSERT INTO [Individual]
(ContactKey, PrefixCode, FirstName, MiddleName, LastName, SuffixCode, Designation, Informal,
Gender, BirthDate, PrimaryInstituteContactKey, PrimaryInstituteName, PrimaryInstituteTitle)
VALUES (@contactKey, @prefix, @firstName, @middleName, @lastName, @suffix, @designation, @informal,
@gender, @birthdate, @companyContactKey, @companyName, @companyTitle)
EXEC asi_GenerateSalutations @contactKey
END
GO